package ai.fzy.demo.pojo.sysInfo;

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/** 系统信息 */
@Data
public class SystemInfo implements Serializable {

    /** 主机名 */
    private String hostname;

    /** 运行时间 */
    private Long uptime;

    /** 操作系统类型 */
    private SystemType type;

    /** 操作系统版本 */
    private String release;

    /** 操作系统CPU架构 */
    private String arch;

    /** CPU信息，每个元素代表一个CPU核心 */
    private List<CpuInfo> cpus = new ArrayList<>();

    /** 可用内存(单位字节) */
    private Long freemem;

    /** 总内存容量单位字节) */
    private Long totalmem;

    /** 网卡信息， key是网卡名称，value是网卡的配置信息 */
    private Map<String, List<NetworkInterfaceInfo>> networkInterfaces = new HashMap<>();

    /** 自定义脚本执行的返回结果, key脚本名字，value执行结果 */
    private Map<String, Result> scripts = new HashMap<>();

    @Data
    public static class Result implements Serializable {
        /** 执行成功时返回 */
        private String stdout;

        /** 执行返回的错误信息 */
        private String stderr;
    }
}
